// Promise.resolve().then(() => {
//     console.log("1");
//     throw new Error("error1");
// }).catch(() => {
//     console.log("2")
// }).then(() => {
//     console.log("3")
// }) 
// // 1 2 3

// console.log(100)
// setTimeout(() => {
//     console.log(200);
// })
// Promise.resolve().then(() => {
//     console.log(300)
// })
// console.log(400)
// // 100 400 300 200

// // 100400 1 300 2 3 200

async function async1() {
    console.log("async1 start")
    await async2();
    console.log("async1 end");
}
async function async2() {
    console.log("async2")
}
console.log("script start");
setTimeout(() => {
    console.log("setTimeout");
})
async1();
new Promise( resolve => {
    console.log("Promise1")
    resolve()
}).then( () => {
    console.log("promise2")
})
console.log("script end")
// script start / async1 start / async2 / promise1 / script end / async1 end / promise2 / setTimeout
